package com.xsp.dao;

import com.xsp.entity.BookInfo;
import com.xsp.entity.QueryBookParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author xsp
 * @date 2024/1/2
 * @desc
 */
public interface BookInfoMapper {

    int insert(BookInfo bookInfo);

    int update(BookInfo bookInfo);

    int delete(Integer id);

    int deleteByUserIds(@Param("ids") Integer[] ids);

    List<BookInfo> selectList();

    /**
     * 通过图书名称模糊查询图书信息
     */
    List<BookInfo> selectListByName(String bookName);

    /**
     * 通过类型和名称查询
     */
    List<BookInfo> selectListByParams(
            @Param("bookName") String bookName,
            @Param("author") String author,
            @Param("type") Integer type
    );

    /**
     * 单参数互斥查询
     */
    List<BookInfo> selectListByParams1(
            @Param("bookName") String bookName,
            @Param("author") String author,
            @Param("type") Integer type
    );

    List<BookInfo> selectListByParams2(QueryBookParam param);

    BookInfo selectById(Integer id);
}
